from pydantic_settings import BaseSettings
from typing import Optional, List

class Settings(BaseSettings):
    """
    应用配置 (v2.0 - 自主工作单元架构)
    """
    # --- 应用元数据 ---
    APP_NAME: str = "WritifyAI-2API"
    APP_VERSION: str = "2.0.0"
    DESCRIPTION: str = "一个将 writify.ai 转换为兼容 OpenAI 格式 API 的高性能、自愈式、多会话代理。"

    # --- 认证与安全 ---
    API_MASTER_KEY: Optional[str] = "sk-writify-default-key"

    # --- 自主工作单元配置 ---
    # 要在池中维护的并发工作单元（匿名会话）数量
    WORKER_POOL_SIZE: int = 5
    # 创建新工作单元的超时时间（秒）
    WORKER_CREATION_TIMEOUT: int = 60
    # 请求上游 API 的超时时间（秒）
    API_REQUEST_TIMEOUT: int = 180

    # --- Nginx 端口 ---
    NGINX_PORT: int = 8088

    # --- 模型定义 (允许用户通过抓包自行发现和使用) ---
    # 默认模型，如果用户未指定
    DEFAULT_MODEL: str = "chatbot-b7j5gh"
    # 已知模型列表，用于 /v1/models 端点
    KNOWN_MODELS: List[str] = [
        "chatbot-b7j5gh", # 默认观察到的
        # 用户可以根据抓包自行在此处添加更多 botId
    ]

    class Config:
        env_file = ".env"
        env_file_encoding = 'utf-8'
        extra = "ignore"

settings = Settings()
